Architecture Base Graphs: An Alternative Instruction Scheduling and Register Allocation Approach for High Per- formance Processor Architectures
ثبت نشده
چکیده
This paper presents a unified algorithm that addresses the instruction scheduling and register allocation problems for high performance processor architectures. Our proposal is based on the subgraph isomorphism theory. Given a Directed Acyclic Graph (DAG) G1, the algorithm looks for a subgraph G2 in an architecture base graph G2, such that G ′ 2 is isomorphic to G1. G1 is a DAG extracted out from the user program in the compiler phase. The base graph G2 is built upon the arrangement of the processing elements and user-visible registers of a computer processor. G2 is the set of those processing elements and registers required to execute operations in G1. Our strategy focuses on code generation for constrained and irregular processor architectures exploiting ILP. We have performed experiments using this integrated approach in programs of the SPEC and MediaBench suites on an ILP processor and compared it to the scheduling and register allocation algorithms of the Trimaran compiler infrastructure. The results show that the isomorphism strategy provides better generated code (3%− 85%) on kernels covering up to 90% of the application execution time.
منابع مشابه
Register Allocation Instruction Scheduling A New Approach
Instruction scheduling and register allocation are two very In this paper, we solve register allocation and instruction scheduling simultaneously using integer linear programming (ILP). theform ulation?a new ???v ariableU has taken several approaches, including: branch-andbound enumeration (5) (13). more expensive register spill and reload instructions in the program. Eager code This thesis dev...
متن کاملExploiting Symmetries for Optimal Integrated Code Generation
High quality code generation for irregular architectures, such as Digital Signal Processors, is a complex task, as it requires a fully integrated approach that simultaneously deals with the most important tasks of instruction selection, register allocation and instruction scheduling. We show how a fully integrated approach for optimal code generation based on dynamic programming can benefit fro...
متن کاملFinal report for Ceniit project 01.06 (2001–2007) Optimization Algorithms for Integrated Code Generation
In this project we developed integrative methods for generating high-quality code for embedded and instruction-level parallel processor architectures, including regular architectures such as superscalars and VLIW, as well as irregular architectures, such as clustered VLIW and DSP processors. Even though today’s DSP processors are more compiler friendly than a decade ago or than today’s network ...
متن کاملUrsa: a Uniied Resource Allocator for Registers and Functional Units in Vliw Architectures
The division of instruction scheduling and register allocation and assignment into separate phases can adversely a ect the performance of these tasks and thus the quality of the code generated for load/store ne grained parallel architectures. Improved performance in one phase can deteriorate the performance of the other phase, possibly resulting in poorer overall performance. In this paper we p...
متن کاملMinimum Register Instruction Scheduling: A New Approach for Dynamic Instruction Issue Processors
Modern superscalar architectures with dynamic scheduling and register renaming capabilities have introduced subtle but important changes into the tradeoffs between compile-time register allocation and instruction scheduling. In particular, it is perhaps not wise to increase the degree of parallelism of the static instruction schedule at the expense of excessive register pressure which may resul...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2011